package com.nine.cola.component;

import com.alibaba.cola.statemachine.Action;
import com.nine.cola.domain.Order;
import com.nine.cola.enums.OrderEvent;
import com.nine.cola.enums.OrderStatusEnum;
import org.springframework.stereotype.Component;

/**
 * Action<S, E, C>
 * S:state 我们自己项目中的状态类
 * E:Event 我们自己的事件类
 * C:Context 我们自己的上下文
 */
@Component
public class UserCloseAction implements Action<OrderStatusEnum, OrderEvent, Order> {


    @Override
    public void execute(OrderStatusEnum from, OrderStatusEnum to, OrderEvent event, Order context) {
        System.out.println("用户关闭流程开始走了");
        System.out.println("从这个状态-【" + from.getInfo() + "】-转为+【" + to.getInfo() + "】 的状态");
        System.out.println("上下文信息：" + context.toString());
        System.out.println("中间执行的一些操作.......");
        System.out.println("用户关闭流程完毕了");
    }
}
